Komponenta TWebbrowser - nefunduje klavesa Enter

Otázka od: koukal@petrkoukal.cz

9. 6. 2004 8:44


Dobry den.

 D6 prof, WIN XP prof, P4 - na formu je komponenta TWebBrowser v ni
pouzivam textovou oblast

  definovanou takto (uvadim bez tagu <> ) textarea class = fra
name=" LnData" cols = 75 rows =22 wrap="virtual"
 (fra je definovan jako css style a mneni vzhled ).

Klavesa enter bez problemu funguje pokud stranku nactu v externim webbrowseru
Interner explorer, Mozila ,
na formu pri chodu aplikace je kalvesa enter ignorovana.

Form nastaven Active control : Webbrowser1
                         Form style : fsnormal
                         Keypreview : true

Webbrowser nastaven Tabstop na TRue;

Zkousel jsem i jine kombinace ale marne.

Tusi nekdo v cem je chyba?

   Predem diky.

                                           PetrKkoukal (email:
koukal@petrkoukal.cz)


Odpovedá: Radek Szurman

9. 6. 2004 12:29

Cau pred casem jsem neco takoveho resil, nefungovaly tam sipky a enter
nejelo kdyz tam nebyl button
musi se odchycovat

snad ti pomuze nebo te navede tenhle kousek kodu:

procedure TFrmMain.MyMessageHandler(var Msg: TMsg; var Handled: Boolean);
const
  DuplicatedKeys: set of Byte = [VK_TAB, VK_BACK, VK_LEFT, VK_RIGHT, VK_UP,
VK_DOWN, VK_PRIOR, VK_NEXT];
var
   w:HWND;
begin

if VIP=false then begin
                  if (Msg.Message = WM_RBUTTONDOWN) or (Msg.Message =
WM_RBUTTONUP) then begin handled:=True; exit; end; //else begin Handled :=
False; end;
                  end;

     Handled:=False;
     if Msg.message = WM_KEYDOWN then
     begin
          if Msg.wParam in DuplicatedKeys then
         //do nothing let ie take care of it
           end;
     w:=GetFocus;
     if (w=0) {or (w=[].Handle)} then Exit;
     if OIPAO<>nil then
     begin
          if w = OIPAO_Wnd then Handled := IsDialogMessage(w,Msg);
          if not Handled then Handled := (OIPAO.TranslateAccelerator(Msg) =
S_OK);
     end;
     if (not Handled) and Assigned(SaveMessageHandler) then
SaveMessageHandler(Msg,Handled);
end;


pak je dobre jeste initializovat ole uplne na konci unity

initialization
  OleInitialize(nil);

finalization
  OleUninitialize;



Radek Szurman
>
> Dobry den.
>
> D6 prof, WIN XP prof, P4 - na formu je komponenta TWebBrowser v ni
pouzivam textovou oblast
>
> definovanou takto (uvadim bez tagu <> ) textarea class = fra
name="
LnData" cols = 75 rows =22 wrap="virtual"
> (fra je definovan jako css style a mneni vzhled ).
>
> Klavesa enter bez problemu funguje pokud stranku nactu v externim
webbrowseru Interner explorer, Mozila ,
> na formu pri chodu aplikace je kalvesa enter ignorovana.
>
> Form nastaven Active control : Webbrowser1
> Form style : fsnormal
> Keypreview : true
>
> Webbrowser nastaven Tabstop na TRue;
>
> Zkousel jsem i jine kombinace ale marne.
>
> Tusi nekdo v cem je chyba?
>
> Predem diky.
>
> PetrKkoukal (email:
koukal@petrkoukal.cz)
>
>
>
>